import request from '@/utils/request';

/**
 * 获取骑手列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getRiders(params) {
    return request({
        url: '/admin/riders',
        method: 'get',
        params
    });
}

/**
 * 获取骑手详情
 * @param {Number} id - 骑手ID
 * @returns {Promise}
 */
export function getRiderById(id) {
    return request({
        url: `/admin/riders/${id}`,
        method: 'get'
    });
}

/**
 * 添加骑手
 * @param {Object} data - 骑手信息
 * @returns {Promise}
 */
export function addRider(data) {
    return request({
        url: '/admin/riders',
        method: 'post',
        data
    });
}

/**
 * 更新骑手信息
 * @param {Object} data - 骑手信息
 * @returns {Promise}
 */
export function updateRider(data) {
    return request({
        url: `/admin/riders/${data.id}`,
        method: 'put',
        data
    });
}

/**
 * 更新骑手状态
 * @param {Number} id - 骑手ID
 * @param {Number} status - 状态值
 * @returns {Promise}
 */
export function updateRiderStatus(id, status) {
    return request({
        url: `/admin/riders/${id}/status`,
        method: 'put',
        data: { status }
    });
}

/**
 * 删除骑手
 * @param {Number} id - 骑手ID
 * @returns {Promise}
 */
export function deleteRider(id) {
    return request({
        url: `/admin/riders/${id}`,
        method: 'delete'
    });
}

/**
 * 获取可用骑手列表
 * @returns {Promise}
 */
export function getAvailableRiders2() {
    return request({
        url: '/admin/riders/available',
        method: 'get'
    });
}

/**
 * 获取骑手配送历史
 * @param {Number} id - 骑手ID
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getRiderDeliveryHistory(id, params) {
    return request({
        url: `/admin/riders/${id}/history`,
        method: 'get',
        params
    });
}

/**
 * 获取骑手统计数据
 * @param {Number} id - 骑手ID
 * @returns {Promise}
 */
export function getRiderStats(id) {
    return request({
        url: `/admin/riders/${id}/stats`,
        method: 'get'
    });
}

/**
 * 手动分配骑手
 * @param {Number} orderId - 订单ID
 * @param {Number} riderId - 骑手ID
 * @returns {Promise}
 */
export function assignRiderToOrder(orderId, riderId) {
    return request({
        url: `/admin/orders/${orderId}/assign`,
        method: 'put',
        data: { riderId }
    });
}

export default {
    getRiders,
    getAvailableRiders2,
    getRiderById,
    addRider,
    updateRider,
    updateRiderStatus,
    deleteRider,
    getRiderDeliveryHistory,
    getRiderStats,
    assignRiderToOrder
}; 